I. Field of the Invention
The present invention relates generally to a data communication system in which data packets are sent over a wireless medium to one or more recipients. More particularly, this invention relates to a system and method for eliminating header information in data packets during wireless transmission and re-constructing the data packets for delivery across a data network.
II. Description of the Related Art
The transmission of data packets over a network has been a mainstay of computer technology for many years and the communication protocols used to transmit these data packets over various networks are well established. Under conventional communication protocols, it is common for a client to initiate connection with a server and to request desired data from the server. As part of the request, the client sends information pertaining to how the data should be sent. For example, the client might include a client address, TCP port number, and so forth.
Digital data, whether transmitted over a wire-based distribution network (e.g., local area network, wide area network, cable, etc.) or a wireless distribution network (e.g., satellite, cellular, RF, paging, etc.), is typically packetized and sent over the network in individual packets. Some protocols call for fixed size packets, while other protocols utilize variable size packets. To improve transmission efficiency and to keep pace with the exploding demand for digital information, there is a constant design objective to pump increasingly more data through the same bandwidth pipeline over any given network.
One way to achieve this objective is through packet compression. Packets may be compressed at a server, transmitted in their compressed state over a network, and decompressed at a client. Apart from compressing whole packets, another solution is partial packet compression in which portions of the packet, such as a header or a data payload, are compressed.
One technique for compressing packet headers is discussed in an article by V. Jacobson, entitled “Compressing TCP/IP Headers for Low-Speed Serial Links,”. The Jacobson technique provides an elaborate and complex compression scheme that reduces a 40-byte TCP/IP (Transmission Control Protocol/Internet Protocol) packet header to a three-byte compressed header. The compressed header has an encoded change to the packet ID, a TCP checksum, a connection number, and a change mask. The hardware and/or software used to implement the Jacobson technique must perform sophisticated computations that compress the 40-byte header to the three-byte compressed header, and then subsequently decompress the compressed header to reproduce the uncompressed header.
Another technique for compressing packet headers is discussed in an article by S. Casner and V. Jacobson, entitled “Compressing IP/UDP/RTP Headers for Low-Speed Serial Links.” This technique reduces the 40-byte IP/UDP/RTP (Internet Protocol, User Datagram Protocol, Real-Time Protocol) header to an average of between 2 and 4 bytes generally by transmitting second order differences when one or more fields within the header change.
In a wireless data communication system, real-time data, such as voice or video information, may be transmitted using the data protocols discussed above. In this kind of application, delays between a transmitter and a receiver may result in unacceptable distortion of the information being transmitted. This delay, know commonly as latency, can be minimized by reducing the overhead associated with data packets during transmission. However, using the above techniques still results in a large transmission overhead of header information relative to the data being transmitted.
An additional drawback of the above header-compression techniques is that information must occasionally be transmitted from the receiver to the transmitter to alert the transmitter that an error has occurred. In this case, either the transmitter must re-transmit the lost or corrupted data or an update of header information must be re-transmitted to the receiver. This process produces an unacceptable amount of latency in real-time or near real-time applications.
Consequently, there is a need to further reduce the size of headers associated with packet data, especially in real-time applications such as the transmission of audio and video signals.